/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sv.com.intesal.seguridad.controlador;

import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import sv.com.intesal.clases.abstracts.ControladorAbstract;
import sv.com.intesal.seguridad.bean.ParametroBloque;
import sv.com.intesal.seguridad.bean.TipoParametro;
import sv.com.intesal.seguridad.sql.SQLParametroBloque;

/**
 *
 * @author ejerez
 */
public class ParametroBloqueControlador extends ControladorAbstract {

    public void insert(ParametroBloque pb) throws Exception {
        try {
            super.setPreparedStatement(SQLParametroBloque.insert);
            super.ps.setInt(1, pb.getCodigo_s());
            super.ps.setInt(2, pb.getCodigo_tp());
            super.ps.setInt(3, pb.getBloque_pb());
            super.ps.setInt(4, pb.getCorrelativo_pb());
            super.ps.setString(5, super.v.getEstado(pb.getEstado_filtro_pb()));
            super.ps.executeUpdate();
        } catch (Exception e) {
            throw new Exception(e);
        } finally {
            super.setCloseConexion();
        }
    }

    public void update(ParametroBloque pb) throws Exception {
        try {
            super.setPreparedStatement(SQLParametroBloque.update);
            super.ps.setInt(1, pb.getCodigo_s());
            super.ps.setInt(2, pb.getCodigo_tp());
            super.ps.setInt(3, pb.getBloque_pb());
            super.ps.setInt(4, pb.getCorrelativo_pb());
            super.ps.setString(5, super.v.getEstado(pb.getEstado_filtro_pb()));
            super.ps.setInt(6, pb.getCodigo_pb());
            super.ps.executeUpdate();
        } catch (Exception e) {
            throw new Exception(e);
        } finally {
            super.setCloseConexion();
        }
    }

    public List<ParametroBloque> getParametroBloques() throws Exception {
        List<ParametroBloque> lista = new ArrayList<ParametroBloque>();
        try {
            this.getExecuteQuery(SQLParametroBloque.getParametroBloque);
            while (super.rs.next()) {
                lista.add(this.getParametroBloque(super.rs));
            }
            return lista;
        } catch (Exception e) {
            throw new Exception(e);
        } finally {
            super.setCloseConexion();
        }
    }

    private ParametroBloque getParametroBloque(ResultSet rs) throws Exception {
        try {
            ParametroBloque pb = new ParametroBloque();
            pb.setCodigo_pb(rs.getInt("codigo_pb"));
            pb.setBloque_pb(rs.getInt("bloque_pb"));
            pb.setCorrelativo_pb(rs.getInt("correlativo_pb"));
            pb.setEstado_pb(rs.getString("estado_pb"));
            pb.setEstado_filtro_pb(v.getEstado(rs.getString("estado_pb")));

            /*SUCURSAL*/
            pb.setCodigo_s(rs.getInt("codigo_s"));
            pb.setNombre_s(rs.getString("nombre_s"));

            /*TIPO_PARAMETRO*/
            pb.setCodigo_tp(rs.getInt("codigo_tp"));
            pb.setNombre_tp(rs.getString("nombre_tp"));

            return pb;
        } catch (Exception e) {
            throw new Exception(e);
        }
    }

    public List<TipoParametro> getTipoParametro() throws Exception {
        try {
            TipoParametroControlador tp = new TipoParametroControlador();
            return tp.getTipoParametrosActivos_x_Tipo("PB");
        } catch (Exception e) {
            throw new Exception(e);
        }
    }
}
